//造服务器
var express = require('express');
var app = express();
//创建io对象，socket.io公式
var http = require('http').createServer(app);
var io = require('socket.io')(http)
//session公式
var session = require('express-session');
app.use(session({
  secret: 'keyboart cat',
  resave: false,
  saveUninitialized: true
}));
//模版引擎
app.set('view engine', 'ejs');
//加载静态文件
app.use(express.static('./public'));
var alluser = [];

//中间件,设置路由
//显示首页
app.get('/', function (erq, res, next) {
  res.render('index');
});
//确认登陆，检查此人是否有用户名，并且昵称不能重复
app.get('/check', function (req, res, next) {
  var username = req.query.username;
  if (!username) {
    res.send('必须填写用户名');
    return;
  }
  if (alluser.indexOf(username) != -1) {
    res.send('用户名已经被占用');
    return;
  }
  alluser.push(username);
  //把用户名赋给session，一直缓存，直到窗口关闭
  req.session.username = username;
  res.redirect('/chat');//网页重定向
});
//聊天室
app.get('/chat', function (req, res, next) {
  //这个页面必须保证有用户名
  if (!req.session.username) {
    //防止用户非法登录
    res.redirect('/');//重定向，让他回去到登录页面
    return;
  }
  //加载聊天室页面
  res.render('chat', {
    'username': req.session.username
  })
});
//建立连接
io.on('connection', function (socket) {
  socket.on('liaotian', function (msg) {
    //把接收到的msg原样广播
    io.emit('liaotian', msg);
  });
});
http.listen(3001);
console.log('端口已打开');